﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using HHL_Acc.HHL_DaoAcc.DataObject;

namespace HHL_Acc.HHL_Util
{
    public class CommonBusUtil
    {
        #region "Những hàm về số serial vé"

        //Lấy về ticketCode
        public static string GetSerialTicketCode(string strSerial)
        {
            return strSerial.Substring(7, 2);
        }

        // lấy về loại vé
        public static int GetSerialTicketID(string strSerial)
        {
            return int.Parse(strSerial.Substring(7, 1));
        }

        // Lấy về loại phương tiện
        public static int GetSerialVehicleID(string strSerial)
        {
            return int.Parse(strSerial.Substring(8, 1));
        }

        // Kiểm tra có phải là vé mã vạch hay không.
        public static bool IsSerial(string strSerial) //* AA/200922000001
        {
            string str1, str2;
            //strSerial = "";
            if (strSerial.Length != 15)
            {
                return false;
            }
            else
            {
                str1 = strSerial.Substring(0, 2);
                if ((char.IsNumber(char.Parse(strSerial.Substring(0, 1))) == true) |
                    (char.IsNumber(char.Parse(strSerial.Substring(1, 1))) == true) | (strSerial.Substring(2, 1) != "/"))
                {
                    return false;
                }
                else
                {
                    try
                    {
                        if (long.Parse(strSerial.Substring(3, 12)) > 0)
                            return true;
                    }
                    catch (Exception asa)
                    {
                        return false;
                    }
                    return false;
                }
            }
        }
        // hàm tạo số serial kết thúc
        public static string endSerial(string start)
        {
            int seri, count;
            string tam = "";
            seri = int.Parse(start.Substring(9, 6)) + 100;
            count = seri.ToString().Length;
            for (int i = 0; i < 6 - count; i++)
            {
                if (tam == "")
                {
                    tam = "0";
                }
                else
                {
                    tam = tam + "0";
                }
            }
            return start.Substring(0, 9).ToString() + tam + seri.ToString();
        }

        #endregion

        #region "Những hàm lấy mệnh giá vé, loại vé, loại xe"

        // lấy mệnh giá vé

        public static String[,] GetTicketPrice()
        {
            String strTicketCode;
            int intTicketID, intVehicleID;
            SysSerialDao sysSerial = new SysSerialDao();
            DataTable ds = new DataTable();
            ds = sysSerial.GetTicketPrice();
            String[,] ticketcode = new string[10,10];
            foreach (DataRow row in ds.Rows)
            {
                strTicketCode = row["TicketCode"].ToString();
                intTicketID = int.Parse(strTicketCode.Substring(0, 1));
                intVehicleID = int.Parse(strTicketCode.Substring(1, 1));
                if ((intTicketID > 0 && intTicketID < 7) && (intVehicleID > 0 && intVehicleID < 7))
                {
                    ticketcode[intTicketID, intVehicleID] = row["Price"].ToString();
                }
                else
                {
                    ticketcode[intTicketID, intVehicleID] = "";
                }
            }
            return ticketcode;
        }

        //Lấy tên loại vé

        public static Dictionary<int, String> GetTicketType()
        {
            int intTicketID;
            SysSerialDao sysSerial = new SysSerialDao();
            DataTable ds = new DataTable();
            ds = sysSerial.GetTicketName();
            Dictionary<int, String> ticketItemList = new Dictionary<int, string>();

            foreach (DataRow row in ds.Rows)
            {
                intTicketID = int.Parse(row["TicketID"].ToString());
                //ticketName[intTicketID] = row["TicketName"].ToString();
                ticketItemList.Add(intTicketID, (String) row["TicketName"]);
            }

            return ticketItemList;
        }

        //Lấy tên loại phương tiện

        public static Dictionary<int, String> GetVehicleType()
        {
            int intVehicleID;
            SysSerialDao sysSerial = new SysSerialDao();
            DataTable ds = new DataTable();
            ds = sysSerial.GetVehicleName();
            Dictionary<int, String> vihicleItemDic = new Dictionary<int, string>();
            foreach (DataRow row in ds.Rows)
            {
                intVehicleID = int.Parse(row["VehicleID"].ToString());
                vihicleItemDic.Add(intVehicleID, (String) row["VehicleName"]);
            }
            return vihicleItemDic;
        }

        // Tạo serialEnd từ serial From
        public static String GenerateSerialEnd(String serialFrom, int? amount)
        {
            //txtAmountDetailInfo.Value = 100;
            String serialEnd = serialFrom.Substring(0, 9);
            serialEnd += String.Format("{0:000000}", amount);
            return serialEnd;
        }
    }

    #endregion
}